// 1. 引入mongoose
const mongoose = require('mongoose')

// 2. 使用mongoose连接数据库
// 如果传入的数据库名,在数据库软件中不存在,则会自动帮我们创建这个数据库. 但是由于创建了也没有数据,则在GUI工具中也看不见
mongoose.connect('mongodb://127.0.0.1:27017/web230202').then(
  () => {
    console.log('数据库连接成功了')
    // 3. 创建schema对象,对插入到数据库中的数据进行要约束
    const schema = new mongoose.Schema({
      goodName: {
        required: true, //当前属性必填
        type: String, // 商品名称必须是字符串
      },
      goodNum: {
        type: Number, // 商品名称必须是字符串
        default: 1,
      },
      // 注意: 1. 如果数据类型不对,但是可以隐式转换也可以成功添加
      // 2. 如果添加了schema中没有定义的属性,则没定义的属性不会添加到数据库中
    })

    // 4. 创建model对象(相当于就是集合)
    // 注意: 集合名最好加s.如果我们不加,mongoose也会自动添加
    const model = mongoose.model('goods', schema)

    // 5. 往goods集合中插入一条数据
    // 后面操作数据库所有的增删改查方法,如果不传入回调函数,返回值都是promise
    model.create({ goodNum: 2, xxx: 123 }).then(
      () => {
        console.log('添加一条数据成功')
      },
      (error) => {
        console.log('添加一条数据失败', error)
      }
    )
  },
  (error) => {
    console.log('数据库连接失败了', error)
  }
)
